package org.aeon.gamechatnest.mapper;

import org.aeon.gamechatnest.dto.UserVo;
import org.aeon.gamechatnest.pojo.Blacklist;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 针对表【blacklist(黑名单)】的数据库操作Mapper
 *
 * @author qik 2024-05-09 09:25:50
 */
@Mapper
public interface BlacklistMapper {
    /**
     * 新增黑名单
     *
     * @param blacklist 黑名单
     * @return 影响行数
     */
    int add(Blacklist blacklist);

    /**
     * 删除黑名单
     *
     * @param id 黑名单id
     * @return 影响行数
     */
    @Delete("delete from blacklist where blacklist_id = #{id}")
    int deleteById(Long id);

    /**
     * 根据id查找黑名单
     *
     * @param id 黑名单id
     * @return 黑名单
     */
    Blacklist getById(Long id);

    /**
     * 根据发起用户id与被拉黑用户id查询黑名单
     *
     * @param fromUser 发起用户
     * @param toUser   被拉黑用户
     * @return 黑名单
     */
    Blacklist getByFromAndTo(Long fromUser, Long toUser);

    /**
     * 查询发起用户的所有黑名单中的用户
     *
     * @param fromUser 发起用户
     * @return 黑名单列表中的用户
     */
    List<UserVo> getByFrom(Long fromUser);
}
